/* ======================================================= */
/**
 * File   : Oval.java
 * Date   : 2 mars 2010 at 23:32:24
 */
/* ======================================================= */
package fr.isima.isipaint.model;

import java.awt.Color;
import java.awt.Graphics2D;

/* ======================================================= */
/**
 * 
 * @author Daniel
 * 
 */
/* ======================================================= */
public class Oval extends GraphicObject {

	/** The width */
	protected int width;

	/** The height */
	protected int height;

	/* ======================================================= */
	/**
	 * Get width attribute
	 * 
	 * @return width
	 */
	/* ======================================================= */
	public final int getWidth() {
		return width;
	}

	/* ======================================================= */
	/**
	 * Set width with width's value
	 * 
	 * @param width
	 */
	/* ======================================================= */
	public final void setWidth(int width) {
		this.width = width;
	}

	/* ======================================================= */
	/**
	 * Get height attribute
	 * 
	 * @return height
	 */
	/* ======================================================= */
	public final int getHeight() {
		return height;
	}

	/* ======================================================= */
	/**
	 * Set height with height's value
	 * 
	 * @param height
	 */
	/* ======================================================= */
	public final void setHeight(int height) {
		this.height = height;
	}
	/* ======================================================= */
	/**
	 * @param x the x coordinate
	 * @param y the y coordinate
	 * @param width the oval width
	 * @param height the oval height
	 */
	/* ======================================================= */
	public Oval(int x, int y, int width, int height) {
		super(x, y);
		setWidth(width);
		setHeight(height);
	}
	/* ======================================================= */
	/**
	 * @param x the x coordinate
	 * @param y the y coordinate
	 * @param width the oval width
	 * @param height the oval height
	 * @param color the oval color
	 */
	/* ======================================================= */
	public Oval(int x, int y, int width, int height, Color color) {
		this(x, y, width, height);
		setColor(color);
	}

	/* ======================================================= */
	/**
	 * @param x the x coordinate
	 * @param y the y coordinate
	 * @param width the oval width
	 * @param height the oval height
	 * @param fill the oval is it filled?
	 */
	/* ======================================================= */
	public Oval(int x, int y, int width, int height, boolean fill) {
		this(x, y, width, height);
		setFill(fill);
	}

	/* ======================================================= */
	/**
	 * @param x
	 *            the x coordinate
	 * @param y
	 *            the y coordinate
	 * @param width
	 *            the oval width
	 * @param height
	 *            the oval height
	 * @param color
	 *            the oval color
	 * @param fill
	 *            the oval is it filled?
	 */
	/* ======================================================= */
	public Oval(int x, int y, int width, int height, Color color, boolean fill) {
		this(x, y, width, height, color);
		setFill(fill);
	}

	/* ======================================================= */
	/**
	 * Draw A Oval on the screen
	 * 
	 * @see fr.isima.isipaint.model.GraphicObject#draw()
	 */
	/* ======================================================= */

	@Override
	public void draw(Graphics2D g) {
		g.setColor(color);
		if (isFill()) {
			g.fillOval(x, y, width, height);
		} else {
			g.drawOval(x, y, width, height);
		}

	}

}
